package com.xk857.system.mapper;

import com.xk857.entities.SysRole;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xk857.system.mapper.provider.SysRoleProvider;
import org.apache.ibatis.annotations.*;

import java.util.List;

/**
 * 角色信息表 Mapper 接口
 *
 * @author CV大魔王
 * @since 2021-02-25
 */
public interface SysRoleMapper extends BaseMapper<SysRole> {


    /**
     * 通过角色 id 删除角色菜单关系表数据
     * @param roleId 角色id
     * @return
     */
    @Delete("DELETE FROM sys_role_menu WHERE role_id = #{roleId}")
    boolean deleteRoleMenuByRoleId(@Param("roleId") String roleId);

    /**
     * 根据角色id查询此角色拥有的权限菜单 ids
     * @param id 角色id
     * @return 菜单 id 集合
     */
    @Select("SELECT menu_id FROM sys_role_menu WHERE role_id = #{id}")
    List<String> findMenuIdsById(@Param("id") String id);


    /**
     * 新增角色菜单权限数据到 sys_role_menu
     * @param roleId 角色id
     * @param menuIds 菜单ids集合
     * @return 逻辑值，添加是否成功
     */
    @InsertProvider(type = SysRoleProvider.class,method = "saveRoleMenu")
    boolean saveRoleMenu(@Param("roleId") String roleId, @Param("menuIds") List<String> menuIds);
}
